Current network storage architecture comprises network-attached storage (NAS) and storage area network (SAN). The network-attached storage stores metadata in a file server that results in low performance of the file server due to mass access. A storage area network has been developed to solve the problem generated by the network-attached storage architecture, but network security problems are then generated. Thus, an object-based storage device (OSD) has been developed and serves as a solution for higher performance and better security of network storages.
The object-based storage device provides storage with self-management, sharing, and security under the network storage architecture and transfers low-level functions, such as space management, from a file system to a disk device which comprises a standard object interface for access. Additionally, contents and methods for object access are defined under the OSD architecture and a disk output method corresponding to the OSD architecture and specifications are defined. Currently, implementation of the OSD architecture, for example, comprises simulation using a traditional file system, such as the second extended file system (Ext2) under the Linux operating system, or a new developed disk layout for the OSD architecture, such as the object-based file system (OBFS) and object-based storage device file system (OSDFS). The architecture of the object-based file system or the object-based storage device file system is approximately similar to the architecture of the second extended file system, wherein differences comprise differences in size of changeable blocks and index methods. Implementations of the OSD architecture are described in the following.
The OSD is object-based and recognizes objects according to unique identification codes (ID). The objects comprise root, partition, collection, and user objects. The objects respectively having different attribute layouts. Thus, an object description method for special object specifications must be designed and stored in a physical device.
FIG. 1 is a schematic view of disk layout of the second extended file system (Ext2). As shown in FIG. 1, a disk partition comprises a superblock recording file system information and block groups which are generated according to the size of the partition. The superblock records the number of blocks, free and used blocks, the number of inodes, and so forth. Each block group comprises group information recording free blocks, used blocks, inodes, and data blocks storing data. Information relating to a file and catalog is stored in the inodes. The catalog represents a file with a special format which can be referred to, to create hierarchical relationships between files and catalogs.
FIG. 2 is a schematic view of disk layout of the object-based file system (OBFS). Referring to FIG. 2, the architecture of the object-based file system is approximately similar to the architecture of the second extended file system (Ext2), wherein a disk is divided into regions with the same size, such as 256 megabytes (MB). The size of a region is allocated based on user or system requirements. Additionally, each region can be divided to multiple large or small blocks based on the file size to be stored. Metadata of each region is stored in an onode. The metadata stores states of each object and indexes an object according to a region ID and an object ID.
Thus, some drawbacks of the implementations of OSD file systems are exposed. Current OSD file systems are simulated using conventional file systems, such as the Ext2, the third extended file system (Ext3), and so forth. Traditionally, disk layout of the Linux operating system is implemented based on the inodes. The metadata (such as creating time points) of the disk layout cannot completely describe an object but can only simulate the object, such that the way for implementation and features of the Linux operating system are different than that of the object-based storage device. Further, some new disk layout methods for the object-based storage device (such as the object-based file system (OBFS) or object-based storage device file system (OSDFS)) are designed according to current file systems and features of the object-based storage device but are not specially developed based on features of the specification of the object-based storage device. Thus, storage of full attributes is not provided such that ability of object description is inadequate.
Additionally, the deficiencies of current designs of OSD disk layout include less object portability under network storage architecture, less flexibility of disk uses, less object integrity and less ability of efficiently indexing objects. Besides, some designs of OSD disk layout are unable to follow the memory management rules of modem operating systems. Thus, full features of the object-based storage device cannot be completely revealed using current access methods for file systems and the dependent relationships of objects can only be shown by using other methods.